home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / pc / files / t_unix / j109lxa4.tar / README-ALPHA.4 < prev    next >
Text File  |  1994-06-04  |  8KB  |  160 lines

  1. Bugfixes and changes since ALPHA.3:
  2.  
  3. * "ls"/"dir" of nonexistent file/directory no longer kills NOS
  4.  
  5.   I was using a findlast() function to close the directory opened by the
  6.   findfirst()/findnext() clone, but they already clkose the directory on
  7.   EOF or failure.  There may now be file descriptor leaks if findfirst()/
  8.   findnext() is not run in a loop until -1 is returned, but the code to cope
  9.   with this already exists:  a flag is now set to make sure the directory
  10.   isn't closed twice.
  11.  
  12. * Telnet now works right with *ix clients
  13.  
  14.   I adapted the 1.10 patches for 1.09.  The same caveats apply as with 1.10
  15.  
  16. * Partial support for FTP "SYST" command
  17.  
  18.   All that is currently done by the client is to print the system type as a
  19.   reminder to the user.  I will implement *ix-like automatic file type setting
  20.   later. (This may be done before ALPHA.4 is released.)
  21.  
  22.   The server responds to "SYST" with a 215-level response similar to that in
  23.   1.10c.
  24.  
  25. * New asy driver
  26.  
  27.   The loss of large packets is now cured:  EAGAIN/EWOULDBLOCK wasn't being
  28.   trapped on writes.  Also, the driver parameters can now be configured at
  29.   runtime so that one can balance between the ALPHA.1 behavior, which tended
  30.   to "hog" the process servicing busy asy ports, and the ALPHA.2 behavior
  31.   which preferred the other channels but could drop incoming data on a very
  32.   heavily loaded frequency.
  33.  
  34.   The "asy" command now honors the buffer length.  Previously, a fixed-size
  35.   64-byte buffer was used (traditional *ix clist size).  It can be changed
  36.   dynamically with the "asyconfig" command.  Smaller buffers improve the
  37.   response of other NOS tasks but eat more CPU time; larger buffers will
  38.   better keep up with busy channels but will "starve" other NOS tasks (you
  39.   can use "rxqueue" below to avoid this, however).  A good setting is a
  40.   little larger than your "paclen" (or the MTU on a SLIP/PPP link).
  41.  
  42.   The input and output tasks now support a simple form of inter-task flow
  43.   control, using the "rxqueue" and "txqueue" parameters:  after "rxqueue"
  44.   packets are put in the network "hopper" by the asy receive task, it blocks;
  45.   after "txqueue" packets are transmitted by the asy transmit task or if
  46.   EAGAIN/EWOULDBLOCK is returned on a write, it blocks.  The default is the
  47.   ALPHA.3 behavior, which is an rxqueue/txqueue of 1.  For the "hoggy" style
  48.   used by ALPHA.1, set rxqueue and txqueue very large.  I have both set to
  49.   5 on my asy links and to 2 on my SLIP-to-Linux link, and it seems to be a
  50.   fairly good compromise.
  51.  
  52.   The "asystat" command now shows some useful statistics that may be of help
  53.   in tuning these:
  54.  
  55. net> asystat
  56. 144.99: 9600 bps, packet size 255, RTS/CTS disabled, carrier disabled
  57.   RX: ints 2 chars 73 puts 2 buf 1024 rxqueue 5 qlen 0 ovq 0 block 0
  58.   TX: ints 1 gets 0 chars 57 txqueue 2 qlen 0 ovq 0 block 0
  59. linux: 38400 bps, non-blocking, RTS/CTS disabled, carrier disabled
  60.   RX: ints 0 chars 0 puts 0 buf 1024 rxqueue 2 qlen 0 ovq 0 block 0
  61.   TX: ints 0 gets 0 chars 0 txqueue 2 qlen 0 ovq 0 block 0
  62.  
  63.   "ints" is the number of times pwait() returned control to the task,
  64.   indicating that select() detected pending data on input or a packet became
  65.   available for output.  "chars" is the number of characters read/written.
  66.   "buf" is the current receive buffer size, as specified in the attach
  67.   statement or the "asyconfig" command.  "rxqueue"/"txqueue" is as described
  68.   above.  qlen is the instantaneous queue size (number of packets).  ovq is
  69.   the number of times queue flow control (described above) was triggered.
  70.   "block" is the number of times read/write tried to block (in the case of
  71.   reads, the number of times it tried to block after data was claimed to be
  72.   available).
  73.  
  74.   The "asyconfig" command can be used to examine or set the new asy
  75.   configuration parameters:
  76.  
  77.     asyconfig <iface> <parameter> [<value>]
  78.  
  79.   <iface> is any asy interface.  <parameter> is one of:
  80.  
  81.     bufsize        receive buffer size
  82.     rxqueue        receive flow-control threshold
  83.     txqueue        transmit flow-control threshold
  84.  
  85.   Any of these can be changed at any time.
  86.  
  87.   RTS/CTS flow control is now supported, but untested; I don't have anything
  88.   conveniently available which supports it to test it.  As with the DOS
  89.   version, it is controlled with
  90.  
  91.     param <iface> RTS <0|1>
  92.  
  93.   The default is 1, for compatibility with previous Linux releases.  The DOS
  94.   DTR parameter will *not* be supported, because the Linux serial driver has
  95.   effectively complete control over DTR.
  96.  
  97.   In addition, a new input mechanism has been provided, using the "f trigger"
  98.   parameter used by the DOS version for 16550A FIFO control (that function
  99.   is handled by the Linux kernel; get the "setserial" package if you need to
  100.   tune the FIFO trigger level).  The value can range from 0 to 255; if it is
  101.   0, the original input mechanism is used, otherwise blocking reads are used
  102.   with termios VMIN set to the specified value.  At the moment there is no
  103.   error checking; if you set the buffer size smaller than VMIN you could lose
  104.   incoming data.  Under some *ixes setting it to anything other than a
  105.   multiple of VMIN could cause problems.  (I know that under Ultrix, you would
  106.   need to set bufsize equal to VMIN --- but I don't think JNOS has been ported
  107.   to Ultrix yet :-)  The tradeoff here is that, on a mostly quiet channel,
  108.   input could be delayed by up to 1/5 second, but on an active channel JNOS
  109.   will use *much* less CPU time and generally will be much more efficient.
  110.  
  111.   Summary of the current "attach" command:
  112.  
  113. attach asy ttySX - <slip|ax25|ppp> <iface> <bufsize> <mtu> <speed> [<flags>]
  114.  
  115.   The argument after the device ttySX should be zero or a hyphen (-).  It may
  116.   be used in future versions.
  117.  
  118.   The device should be a ttySX, not a cuaX.  cuaX can cause problems for
  119.   reasons I don't fully understand at present.
  120.  
  121.   <bufsize> is the read buffer size described above.
  122.  
  123.   The only <flag>s supported are "v" for Van Jacobsen SLIP compression and
  124.   "f triglevel" to use the VMIN read mechanism.
  125.  
  126. * The Command flow-control throttle from incoming mail has been fixed
  127.  
  128.   All previous fixes tried to avoid the use of an asynchronous I/O mechanism,
  129.   since it complicates the "curses" session manager.  Unfortunately, there
  130.   *is* no proper fix that doesn't involve asynchronous I/O, since the messages
  131.   are inherently asynchronous.  There is now an asynchronous output entry
  132.   point in the session manager, which is used for these messages.
  133.  
  134. * The FTP client "lcd" command no longer fails
  135.  
  136.   dir_ok() wasn't setting up variables properly.  Sometimes this resulted in
  137.   a "harmless" failure; other times NOS dropped core.
  138.  
  139. * JNOS will read the config file ".nosrc" if no -f option is specified
  140.  
  141.   This is primarily to support default session managers (see below), but
  142.   may also be used for color information in the future.  You may also want
  143.   to copy compat.cfg to .nosrc if you still don't want to rearrange your files
  144.   from ALPHA.2.
  145.  
  146. * You can specify the default Command and Trace session managers in the config
  147.   file (either .nosrc or the one read with the -f option).
  148.  
  149.     Command = sessmgr[:options]
  150.     Trace = sessmgr[:options]
  151.  
  152. Additionally, a number of "dead ends" were pursued but are no longer in the
  153. source.  These include color support (the color commands were asynchronous to
  154. the output, resulting in scrambled colors) and a trace server (a positive
  155. feedback loop results if someone tries to trace the interface they're on, and
  156. there's no way to prevent it).  The abortive color support did lead the way to
  157. the answer to the Command flow-control problem, however (if you've been paying
  158. attention, you'll note that it's the same problem in reverse).  Another
  159. reason color was dropped is that ncurses presently ignores background colors.
  160.